using FreeSql.DataAnnotations;
using Newtonsoft.Json;
using System;

namespace ProjectManageSystemApi.DbEntity
{

    /// <summary>
    /// 角色表
    /// </summary>
    [JsonObject(MemberSerialization.OptIn), Table(Name = "sys_core_role", DisableSyncStructure = true)]
	public partial class SysCoreRole {

		/// <summary>
		/// 主键
		/// </summary>
		[JsonProperty, Column(Name = "id", IsPrimary = true, IsIdentity = true)]
		public long Id { get; set; }

		/// <summary>
		/// 编码
		/// </summary>
		[JsonProperty, Column(Name = "code", StringLength = 64)]
		public string Code { get; set; }

		/// <summary>
		/// 创建时间
		/// </summary>
		[JsonProperty, Column(Name = "create_at", DbType = "datetime")]
		public DateTime? CreateAt { get; set; }

		/// <summary>
		/// 创建人员
		/// </summary>
		[JsonProperty, Column(Name = "create_by")]
		public long? CreateBy { get; set; }

		/// <summary>
		/// 描述
		/// </summary>
		[JsonProperty, Column(Name = "description", StringLength = 1024)]
		public string Description { get; set; }

		/// <summary>
		/// 图标链接或者Base64字符串
		/// </summary>
		[JsonProperty, Column(Name = "icon", StringLength = 256)]
		public string Icon { get; set; }

		/// <summary>
		/// 角色名称
		/// </summary>
		[JsonProperty, Column(Name = "name", StringLength = 128)]
		public string Name { get; set; }

		/// <summary>
		/// 状态(0:无效,1:有效)
		/// </summary>
		[JsonProperty, Column(Name = "status")]
		public int? Status { get; set; } = 1;

		/// <summary>
		/// 类型(0:其他、10:系统、20:客户、30:应用)
		/// </summary>
		[JsonProperty, Column(Name = "type", StringLength = 4)]
		public string Type { get; set; } = "0";

		/// <summary>
		/// 更新时间
		/// </summary>
		[JsonProperty, Column(Name = "update_at", DbType = "timestamp")]
		public DateTime? UpdateAt { get; set; }

		/// <summary>
		/// 更新人员
		/// </summary>
		[JsonProperty, Column(Name = "update_by")]
		public long? UpdateBy { get; set; }

	}

}
